package com.zzzzzz.common.page;


public class PageBar<T> {

	private Page<T> page;
	
	public PageBar(Page<T> page){
		this.page = page;
		setPageBar();
	}

	/**
	 * 根据pageSize与totalCount计算总页数, 默认值为-1.
	 */
	public long getTotalPages() {
		if (page.getTotalCount() < 0) {
			return -1;
		}

		long count = page.getTotalCount() / page.getPageSize();
		if (page.getTotalCount() % page.getPageSize() > 0) {
			count++;
		}
		return count;
	}

	/**
	 * 是否还有下一页.
	 */
	public boolean isHasNext() {
		return (page.getPageNo() + 1 <= getTotalPages());
	}

	/**
	 * 取得下页的页号, 序号从1开始.
	 * 当前页为尾页时仍返回尾页序号.
	 */
	public int getNextPage() {
		if (isHasNext()) {
			return page.getPageNo() + 1;
		} else {
			return page.getPageNo();
		}
	}

	/**
	 * 是否还有上一页.
	 */
	public boolean isHasPre() {
		return (page.getPageNo() - 1 >= 1);
	}

	/**
	 * 取得上页的页号, 序号从1开始.
	 * 当前页为首页时返回首页序号.
	 */
	public int getPrePage() {
		if (isHasPre()) {
			return page.getPageNo() - 1;
		} else {
			return page.getPageNo();
		}
	}

	public boolean containWenHao(){
		return page.getUrl().contains("?");
	}
	
	public void setPageBar() {
		String url = page.getUrl();
		url = containWenHao()?url+"&page=":url+"?page=";
		
		StringBuilder sb = new StringBuilder("<div class='next'>");
		if(isHasPre()){
			sb.append("<a href='").append(url).append(getPrePage()).append("' class='bottonnext'>上一页</a>");
		}
		if(isHasNext()){
			sb.append("<a href='").append(url).append(getNextPage()).append("' class='bottonnext'>下一页</a>");
		}
		sb.append("</div>");
		
		page.setBar(sb.toString());
	}
	
}
